package cn.me.alphamq.nameserver;

import cn.me.alphamq.nameserver.starter.NameServerStarter;
import cn.me.alphamq.nameserver.task.service.ServiceInstanceRemoveTask;
import cn.me.alphamq.nameserver.starter.ClusterStarter;
import cn.me.alphamq.nameserver.task.cluster.ReplicationTask;

/**
 * 注册中心的启动类
 *
 * @author f
 */
public class NameServerStartUp {

    // 初始化集群服务
    private static void initReplicationService() {
        // 开启用于复制的 netty 进程
        ClusterStarter.startNettyProcess();

        // 开启复制任务
        ReplicationTask.startTask();
    }

    // 初始化 nameserver 对外提供的服务
    private static void initNameServerService() {
        // 开启 定期检测并移除非正常服务实例 的任务
        ServiceInstanceRemoveTask.startTask();

        // 启动
        NameServerStarter.startServer();
    }

    public static void main(String[] args) {
        // 初始化节点间的复制服务
        initReplicationService();

        // 初始化 nameserver 对外提供的服务
        initNameServerService();
    }

}
